#####%%######***********#*******************#%%%*##########+**#######
#*####*****************#*#*****##*****+*+++++*****++**###**#######**#
*#######****#**********###**++*#%#******+++++++++++**######*********#
###***#*****************###**++*##********+*****+***####************#
##***********************##***###***********************************#
###***********************====+***********************+**************
*#***********************===+*+=***************++++*++++++++++**++++*
#*#***********#*********===*#****##****************++**+++++++++++++*
##*********++************+**#######***************++++++++++++++++++*
*************+++*************#####****************************++++++*
****************************#**##***********************************#
************+++++++++++*####*#%%#***********************************#
************+++++++++++******+**%#++++******************************#
************+++++++++++**+++###*%%#*+++++++++***********************#
************+++++++++++*++++*********+==++**+++*++++++**************#
************++++++++++**++++++**++++++++===+*++++++*****************#
#**********+++++**++****+++++++***+++++++++===+++*************+++***#
***********+++++++++*****++++++***+++++=-++++=-==+++**********++++**#
**********+++++++++++****+++++++***++++++++++++=--=+++++++++********#
************+++++++++**+++++********+++++++++++++=--==++++++++++++**#
***********++++++++++*+++++++++++****++++++++++++++==--=++++++++++++*
***********+++++++++**++++++++++***#***++++++++++***++=--=++++++++++*
%#####%############################%%%#################*****#########